package com.neusoft.neuiotms.dcom.service.hn;

import java.util.List;
import java.util.Map;

import org.apache.poi.ss.usermodel.Workbook;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import com.neusoft.bizcore.auth.common.bean.UserBean;
import com.neusoft.bizcore.web.support.Searchable;
import com.neusoft.neuiotms.dcom.dto.hn.HnInspectionTaskDTO;
import com.neusoft.neuiotms.dcom.model.enums.HnInspectionTaskStatus;

public interface HnInspectionTaskService {
    List<HnInspectionTaskDTO> index(Searchable searchable, final UserBean userBean);

    Page<HnInspectionTaskDTO> search(Pageable pageable, Searchable searchable, final UserBean userBean);

    HnInspectionTaskDTO update(Long id, HnInspectionTaskDTO dto, UserBean user);

    HnInspectionTaskDTO details(Long id);

    void delete(Long id);

    HnInspectionTaskDTO submit(Long id, HnInspectionTaskDTO dto, UserBean user);

    int getTaskCountByStatus(final UserBean user, final List<HnInspectionTaskStatus> status);

    Page<Map<String, Object>> report(final Pageable pageable, Map<String, Object> params, UserBean user);

    Workbook exportReport(Map<String, Object> params, UserBean user);
}
